import { IPSDEMapObject } from './ipsdemap-object';
import { IPSDEDataSet } from '../ds/ipsdedata-set';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDEMapDataSet
 */
export interface IPSDEMapDataSet extends IPSDEMapObject {
  /**
   * 目标实体数据集合
   *
   * @type {IPSDEDataSet}
   */
  getDstPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 目标实体数据集合
   *
   * @type {IPSDEDataSet}
   */
  get dstPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 目标实体数据集合（必须存在）
   *
   * @type {IPSDEDataSet}
   */
  getDstPSDEDataSetMust(): IPSDEDataSet;

  /**
   * 映射模式
   * @description 值模式 [实体映射处理映射模式] {DEFAULT：默认、 INNER：内部处理 }
   * @type {( string | 'DEFAULT' | 'INNER')}
   * @default DEFAULT
   */
  mapMode: string | 'DEFAULT' | 'INNER';

  /**
   * 映射动态参数
   * @type {IModel}
   */
  mapParams: IModel;

  /**
   * 源实体数据集合
   *
   * @type {IPSDEDataSet}
   */
  getSrcPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 源实体数据集合
   *
   * @type {IPSDEDataSet}
   */
  get srcPSDEDataSet(): IPSDEDataSet | null;

  /**
   * 源实体数据集合（必须存在）
   *
   * @type {IPSDEDataSet}
   */
  getSrcPSDEDataSetMust(): IPSDEDataSet;
}
